Technological advances in semiconductor devices continue to spawn larger numbers of portable computing devices that can require small footprint execution environments and application platforms, many of which are resource constrained. In the marketplace, it is competitively critical to have a platform that is a preferment and is as flexible as possible. Interoperability across a native/managed boundary between the managed platform and the native operating system, which provides many of the base services on which the platform relies, has an overhead cost that is expensive to process in rapid succession.
In GUI (graphical user interface) applications, events need to be trafficked across the native/managed boundary. There are so many events that it becomes a potential performance roadblock. Conventional user interface (UI) systems use a static system that allows the framework to be preferment through filtering of the UI events that are returned to the application. This is important, since the transition from the native code layer to the managed code layer is expensive in terms of at least resources consumed and processor cycles. Thus, minimizing transitions across this boundary has a dramatic effect on application performance. One existing static filtering system forces a developer to make decisions on which events are propagated and which events will not. For those that are not propagated, managed code developers have no way to register or be called back on any of these events, thereby limiting the flexibility of developers on the platform.
What is needed is a flexible event filtering system that maintains high performance without sacrificing developer flexibility.